using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class logged_Default : System.Web.UI.Page
{

    private ActivUFRJ.Classes.Usuario.Usuario usuario = ActivUFRJ.Utilitarios.Usuario.GetSessao();

    protected void Page_Load(object sender, EventArgs e)
    {

        // carrega a sessao do usuario
        ActivUFRJ.Utilitarios.Usuario.ValidarSessao(usuario);

        CarregarControles();

        // artefatos q disponibilizo
        GetArtefatosQDisponibilizo();
        
        // comunidades q disponibilizo
        GetComunidadesQDisponibilizo();

        // carrega avisos do sistema
        CarregarAvisosSistema();
        
        //carrega UltimasNoticias,
        CarregarUltimasNoticias();

        CarregarMeusArtefatos();
        CarregarMinhasComunidades();
        CarregarCaixasMensagem();
    }

    private void CarregarControles()
    {
        lblDataRegistro.Text = usuario.DataRegistro.ToLongDateString();
        lblFormacaoUsuario.Text = usuario.FormacaoAcademica.Descricao;
        lblNomeUsuario.Text = usuario.NomeCompleto;
        lblNomeDestaque.Text = usuario.NomeCompleto;
        lblSaudacao.Text = ActivUFRJ.Utilitarios.Saudacao.RetornaSaudacao();
        lblAreasInteresseUsuario.Text = ActivUFRJ.Utilitarios.Converter.ArrayParaString(ActivUFRJ.Classes.Geral.AreaInteresse.GetListaAreaInteresse(usuario.ID));
        lblStatusSistemaRecomendacao.Text = ActivUFRJ.Sistema.Opcoes.SistemaDeRecomendacao.ToString();
        lblNumeroAcessos.Text = ActivUFRJ.Classes.Log.LogAcessoUsuario.VerificarNumeroDeAcessos(usuario).ToString();
        lblUltimoAcesso.Text = ActivUFRJ.Classes.Log.LogAcessoUsuario.VerificarUltimoAcesso(usuario).ToLongDateString();
        lnbLerNoticias.PostBackUrl = "MinhasMensagens.aspx";

        imbAvisosSistema.PostBackUrl = ActivUFRJ.Sistema.Paginas.PaginaSistema;
        lnbPaginaSistema.PostBackUrl = ActivUFRJ.Sistema.Paginas.PaginaSistema;

        // carrega img do usuario
        imgUsuario.ImageUrl = usuario.LinkImagem;
    }

    private void CarregarUltimasNoticias()
    {
        dataListUltimosComentarios.DataSource = ActivUFRJ.Sistema.UltimasNoticias.GetUltimasNoticias(usuario);
        dataListUltimosComentarios.DataBind();

        if (dataListUltimosComentarios.Items.Count == 0) lblNenhumaNoticia.Visible = true;
    }

    private void CarregarAvisosSistema()
    {
        dataListAvisosSistema.DataSource = ActivUFRJ.Sistema.Aviso.GetListaAvisosDT();
        dataListAvisosSistema.DataBind();

        if (dataListAvisosSistema.Items.Count == 0) lblNenhumAviso.Visible = true;
    }

    private void GetComunidadesQDisponibilizo()
    {
        ActivUFRJ.Classes.Comunidade.Comunidade[] comunidadesQueDisponibilizo = ActivUFRJ.Classes.Comunidade.MgrComunidade.GetComunidadesQueCriei(usuario.ID);
        if (comunidadesQueDisponibilizo != null) lblTotalComunidadesRegistrado.Text = comunidadesQueDisponibilizo.Length.ToString();
        else lblTotalComunidadesRegistrado.Text = "0";
    }

    private void GetArtefatosQDisponibilizo()
    {
        ActivUFRJ.Classes.Artefato.Artefato[] artefatosQueDisponibilizo = ActivUFRJ.Classes.Artefato.MgrArtefato.GetMeusArtefatos(usuario.ID);

        if (artefatosQueDisponibilizo != null) lblTotalArtefatosDisponibilizados.Text = artefatosQueDisponibilizo.Length.ToString();
        else lblTotalArtefatosDisponibilizados.Text = "0";
    }

    private void CarregarMeusArtefatos()
    {
        dataListMeusArtefatos.DataSource = ActivUFRJ.Classes.Artefato.MgrArtefato.GetMeusArtefatosDT(usuario.ID);
        dataListMeusArtefatos.DataBind();

        if (dataListMeusArtefatos.Items.Count == 0) lblArtefatoNaoEncontrado.Visible = true;
    }

    private void CarregarMinhasComunidades()
    {
        dataListMinhasComunidades.DataSource = ActivUFRJ.Classes.Comunidade.MgrComunidade.GetComunidadesQueCrieiDT(usuario.ID);
        dataListMinhasComunidades.DataBind();

        if (dataListMinhasComunidades.Items.Count == 0) lblComunidadeNaoEncontrada.Visible = true;
    }

    private void CarregarCaixasMensagem()
    {
        // carrego a cx de entrada
        ActivUFRJ.Classes.Geral.CaixaEntrada caixaEntrada = new ActivUFRJ.Classes.Geral.CaixaEntrada(usuario);
        
        lblNumeroMensagensNovas.Text = caixaEntrada.MensagensNovas.ToString();
        lblNumeroMensagensLidas.Text = caixaEntrada.MensagensLidas.ToString();

        // carrego a cx de mensagens enviadas
        ActivUFRJ.Classes.Geral.CaixaSaida caixaSaida = new ActivUFRJ.Classes.Geral.CaixaSaida(usuario);
        lblNumeroMensagensEnviadas.Text = caixaSaida.MensagensEnviadas.ToString();
    }


}
